#define _CRT_SECURE_NO_WARNINGS 1
//author:付平权
//description:
//time:

//int main()
//{
//	int a = -15;
//	int b = a >> 1;
//	printf("%d\n", b);
//	printf("%d\n", a);
//	return 0;
//}
//

//int main()
//{
//	int a = 6;
//	//左移操作符 - 左边丢弃，右边补0
//	//[00000000000000000000000000000110] - 6的补码
//	//[00000000000000000000000000001100] - 补码
//	//
//	/*int b = a << 1;
//	printf("%d\n", b);
//	printf("%d\n", a);*/
//
//	//a = a << 1;
//	//a <<= 1;
//	//a = a + 1;
//	//a += 1;
//
//	return 0;
//}


//int main()
//{
//	int a = 5;
//	int b = a >> -2;//标准未定义行为
//
//	return 0;
//}

//int main()
//{
//	int a = 3;
//	//00000000000000000000000000000011 - 补码
//	int b = -5;
//	//10000000000000000000000000000101
//	//11111111111111111111111111111010
//	//11111111111111111111111111111011 - 补码
//	//
//	int c = a & b;
//	//& -- 对应二进制位有0则为0，两个同时为1，才是1
//	//00000000000000000000000000000011
//	//11111111111111111111111111111011
//	//00000000000000000000000000000011 - 补码
//	//
//	printf("%d\n", c);//3
// 
// 
//	return 0;
//}